Skip to content

Conversation

@PGijsbers
Copy link
Contributor

@PGijsbers PGijsbers commented Jan 26, 2026

Updating routing and data of the images to allow an out of the box test server on a local machine.

Currently the updated configuration allows running of the openml-python unit tests that require the test server (see openml/openml-python#1630).

Have to cross-check I didn't break other functionality in the process.

NGINX is now also listens to port 8000 on the docker network.
This is an important step to being able to start these `services`
and have them function as a local test server for openml-python
among others.

# Update openml.expdb.dataset with the same url
mysql -hdatabase -uroot -pok -e 'UPDATE openml_expdb.dataset DS, openml.file FL SET DS.url = FL.filepath WHERE DS.did = FL.id;'

Copy link
Contributor Author

@PGijsbers PGijsbers Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These removed updates are now embedded in the state of the database on the new image

sed -i -E 's/^(::1\t)localhost (.*)$/\1\2/g' /etc/hosts.new
cat /etc/hosts.new > /etc/hosts
rm /etc/hosts.new

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For other containers updating /etc/hosts through configuration was sufficient.
For this one, the pre-existing /etc/hosts took precidence, so it needed to be updated.

- "8000:8000"
networks:
default:
ipv4_address: 172.28.0.2
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the static ip address is required so that we can add entries to /etc/hosts file of other containers, so they contact nginx when they resolve localhost.

@PGijsbers PGijsbers changed the title [WIP] Update to function as out-of-the-box test server Update to function as out-of-the-box test server Feb 5, 2026
@PGijsbers PGijsbers marked this pull request as ready for review February 5, 2026 15:25
@@ -1,4 +1,4 @@
CONFIG=api_key=AD000000000000000000000000000000;server=http://php-api:80/
CONFIG=api_key=abc;server=http://php-api:80/
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand, here the api key is set from AD000000000000000000000000000000 to abc ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AD000000000000000000000000000000 was the api key in the old test database image, but this has been changed to abc to match the test server database.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The evaluation engine needs administrator access currently.

Comment on lines +1 to +2
apikey=normaluser
server=http://localhost:8000/api/v1/xml
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... and here the api key is set from AD000000000000000000000000000000 to normaluser

So far, these were the keys for developers:

php-api (v1) test-server: normaluser
php-api (v1) local-server: AD000000000000000000000000000000

has anything changed here?

Also what are the api keys for python-api (v2), now that it will also be added to services with a frozen docker image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This configuration is just for when you spin up a openml-python container to use the Python API. They do not need administrator access, so I changed the key to normaluser which is a normal read-write account.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Python-based REST API uses the keys that are in the database. The server is unaffected, but I will need to update the keys that are used in its tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants